Devices and methods for content sharing

ABSTRACT

Described are methods and devices for automatically coupling two or more mobile communication devices ( 502, 541 ) to share content such as calls, music, documents, video and games where two or more devices automatically determine the feasibility of sharing the content and negotiate to find an efficient manner in which to do so. In this way, the pairing between devices may be transparent to the users. Moreover, a better choice in a transport may be selected without user input. Each device may include a near field communication (NFC) device that when in range of the other device may automatically initiate pairing between the devices so that the devices may share content. The users of NFC enabled devices may have little or minimal interactions except that one or more users may bring the devices within range so that the NFCs may initiate the pairing between the devices.

FIELD

Disclosed are methods and devices for automatically coupling two or morelocal mobile communication devices to share content such as digitalcalls, music, video, documents, and games.

BACKGROUND

Digital media content such as pictures, music, documents, and video hasbecome an indispensable part of people's daily lives. Due to the rapiddevelopment and wide deployment of wireless networks and wirelessproducts, content sharing over a wireless network may become anefficient way to distribute media content. However, sharing anddistribution is still not user-friendly.

Three-way calling among communication devices shares voice calls amongthree parties. However, the steps to initiate a three-way call aretedious and complicated. While the caller is on a two-way call using acellular communication device, he or she may wish to invite a thirdparty to the communication. The caller may press a three-way call buttonon the device and input the telephone number of the third party. Then,the second party will be placed on hold. After a connection with thethird party is established, the caller can press the three-way buttonagain to link the second party back to the communication. Generally, adevice with two existing call connections cannot initiate or acceptanother call with a fourth party to augment the three-way communicationto a four-way communication. Moreover, a service fee is required for athree-way call in a Public Switched Telephone Network (PSTN) system.Accordingly, a caller who initiates the three-way call will be chargedfor two connections. Due to the cost and complications, a three-way PSTNcalling scheme may not be utilized often.

An alternative technique to the above-described three-way callingtechnique may include a caller on an existing two-way call setting up apoint-to-point Bluetooth connection in addition to the PSTN call.However, there are multiple manual steps that the caller and third partymay need to perform to pair the two devices to share the call. Again,due to the complications, users may not utilize a point-to-pointBluetooth connection to add a third party to a two-way call.

Mobile communication device users may wish to share more than just voicecalls. While setting up a point-to-point Bluetooth connection allowsusers to share some of the above-mentioned content such as calls,pictures, music, documents, and video, most users find the Bluetoothpairing process complicated and tedious plus the transfer of contentdifficult.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts a mobile communication device in accordance with anembodiment including a near field communication (NFC) device and atleast one short-range transceiver;

FIG. 2 depicts a “tap-to-configure” example including a first device, asecond device, and a third device, with the first device having voicecommunication over a cellular network;

FIG. 3 is a high-level timing diagram illustrating the“tap-to-configure” sequence of events between a first device and asecond device in accordance with an embodiment;

FIG. 4 is a high-level diagram of different possible components of theconfiguration information, the available bandwidth, and the applicationtype of a wireless communication device that may be transmitted via itsNFC device to another wireless communication device;

FIG. 5 is a signal flow diagram illustrating a Bluetooth connectionusing a virtual link key and NFC information of two devices inaccordance with an embodiment;

FIG. 6 depicts an example of call sharing between co-located devices;

FIG. 7 depicts an arrangement where three devices may share three calls,and therefore have 6-way communication;

FIG. 8 depicts a high-level instance of a Synchronization MechanismState Machine in accordance with an embodiment;

FIG. 9 illustrates an example of a Peer-to-Peer State Machine (P2PSM)running on a specific device that may be customized to the media typesand transports that the device supports;

FIG. 10 illustrates an embodiment of a generic example of a P2PSMrunning on a specific device that may be customized to the media typesand transports that the device supports;

FIG. 11 depicts an example of a generic configuration data format for anNFC-transmitted information exchange between two devices in accordancewith an embodiment;

FIG. 12 illustrates the format for the output memory of the stateinformation of FIG. 11;

FIG. 13 is a specific example of FIG. 11 with T1=Bluetooth and T2=WiFi;

FIG. 14 is a table that specifies the format of the combined “BT,” “BTconf length,” and “BT configuration” fields of FIG. 13;

FIG. 15 is a table that specifies the format of the combined “Wla,”“WiFi conf length,” and “WiFi configuration” fields shown in FIG. 13;and

FIG. 16 is a table that specifies the format for the combined “St,”“State info length,” and State information” fields shown in FIG. 13.

DETAILED DESCRIPTION

Today's wireless devices typically are able to support multiple wirelesstechnologies such as cellular plus WiFi, Bluetooth, UWB, etc. Usually,the setup of a short-range wireless connection (such as WiFi, Bluetooth,etc.) requires some basic technical knowledge. The configurationprocedures provided with the products are often not understood byaverage, non-technical consumers. As a result, wireless transfer ofdigital content between local devices often occurs over the firstavailable wireless link or as selected by an uninformed user. Thiswireless link may not be the best choice for quality, user experience,power, and/or cost savings. For example, the transmission power forBluetooth class 2 is 2.5 mW (4 dBm). It can provide up to 1 Mbps datarate with 10 meters coverage. The transmission power for WiFi 802.11b is100 mW (20 dBm). It can support up to 11 Mbps within 100 meters. Forimage and audio sharing, Bluetooth can provide a good service qualityand consume less power than other short-range wireless transports.Although it consumes more power, WiFi may be a better choice for videocontent that requires more bandwidth. However, most users are not awareof the technical differences between Bluetooth and WiFi wireless linksand do not know which type of wireless link is most appropriate forparticular situations.

Described are methods and devices for automatically coupling two or moremobile communication devices using short-range wireless links to sharecontent such as calls, music, video, documents, and games where two ormore devices automatically determine the feasibility of sharing thecontent and negotiate to find an efficient manner in which to do so. Inthis way, the short-range set-up and content transfer between devicesmay be transparent to the users. Moreover, a better choice of transportmay be selected without user input.

As will be described in detail below, while a first user's deviceapplication is active, at least a first user's device and a seconduser's device substantially automatically configure to share the contentcorresponding to the active application of the first device over ashort-range wireless communication link. The active application of thefirst device may be, for example, a voice call, music playback, adocument, video, or photo image display. Configuration information thatis stored in memory, such as RAM, is used to configure the transport ofa short-range wireless transceiver. Each device includes a near fieldcommunication (NFC) device that, when in range, initiates communicationbetween the devices so that the devices may share content. The NFC isused to transfer configuration information so that two short-rangetransceivers of different devices set up compatible transportconfigurations.

For example, there are different modes of Bluetooth depending upon thefunctionalities of a communication device. Accordingly, a particularmode of Bluetooth may not be capable of communication with another modeof Bluetooth running on another device. Thus, the configurationinformation conveys transport configurations to promote compatibility.By the described automatic determination of compatible configurations oftransports, the users of NFC-enabled devices may have limited or minimalpersonal interactions—just enough to establish that one or more usersmay bring the devices within range so that the NFC devices may initiatethe communication. In one embodiment, the users may “tap-to-configure”their devices for content sharing. Accordingly, the need for complicatedand tedious processes to share content may be eliminated.

As will be described in more detail below, a mobile communication deviceincludes an NFC device and at least one short-range transceiver such asa Bluetooth transceiver or a WiFi transceiver. The NFC device may beconfigured to: transmit parameters such as configuration information andavailable bandwidth of it short-range wireless transceivers; transmitapplication type information; and receive another device's configurationinformation, available bandwidth, and application type information.After the NFC device has transmitted and received such information, aprocessor determines the configuration needed (and possibly the bestsuited) to transmit or receive digital content at an appropriatebandwidth. A short-range transceiver of the mobile communication devicehaving a wireless transport configuration set in accordance with thedetermined configuration information, and also having an availablebandwidth, may transmit data such as digital content appropriate to theactive application type previously transmitted via the NFC. Theapplication type information includes a maximum of one applicationindicator that indicates a highest priority application software programthat is running on the processor.

As a result of the interaction between the two devices and theirrespective NFC devices, an application that is active on the firstdevice may be opened and become active on the second device so that thedata received from the first device via a short-range transport will beaccessible to the user of the second device. In this way, the users ofNFC-enabled devices may have limited or minimal interactions to sharecontent. One or more users bring the devices within range so that theNFCs may initiate setting up short-range communication between thedevices; and the appropriate transport, application, and digital contentis determined without each user having to set up the transport andselect the content application manually. Accordingly, the need forcomplicated and tedious processes for setting up two or more devices toshare content may be eliminated.

Advantageously, the above-described configuration process may be usedfor configuring a plurality of devices. For example, the below-describedmethod may include implementing a point-to-multipoint (P2M) connectionin which the first wireless device has a short-range wirelesspoint-to-point (P2P) connection with a second wireless communicationdevice and at least one other short-range wireless P2P connection with athird wireless communication device. Therefore, more than two devicesmay share content such as calls, music, video, documents, and games.

FIG. 1 depicts a mobile communication device 102 in accordance with anembodiment including a near field communication (NFC) device 104, suchas an RFID tag, and at least one short-range transceiver 106, 108, and110. The mobile communication device 102 may be implemented as acellular telephone (also called a mobile station or user equipment) asshown or a laptop or notebook computer with communication modems, amessaging device, a personal digital assistant, a digital camera, anapplication-specific gaming device, a video gaming device with wirelessmodem, or the like. The mobile communication device 102, for example,may include a cellular antenna 112 and corresponding cellulartransceiver 114. The cellular transceiver may support, for example,voice communication, the capability of transferring digital data, SMSmessaging, Internet access, multi-media content access, and/or voiceover internet protocol (VoIP).

The user interface 116 allows a user access to the content of anapplication running on the device 102. The user interface 116 mayinclude a display 103 and a keypad 105. A speaker 107 and microphone 109may be part of a user interface 116 for voice calls, a speechrecognition application, and for other audio applications. It isunderstood that any type of user interface 116 is within the scope ofthis discussion.

Device 102 includes a near field communication (NFC) device 104 that(when in range of another NFC-enabled device) may initiate compatibleconfigurations between two mobile communication devices so that thedevices can share content. As mentioned above, an RFID is an example ofan NFC device. Two mobile communication devices, each having compatibleNFC devices may quickly transfer small amounts of information betweenthem when in range. As will be described below, a minimum amount ofinformation allows two devices to configure compatibly so that they mayshare content wirelessly at short range.

In the embodiment depicted in FIG. 1, at least one NFC device 104 is incommunication with a controller 117 that may, in turn, be incommunication with a processor 120. For example, the processor 120 maybe a real-time voice processor for voice call sharing. A real-time voiceprocessor 120 may be utilized because speech processing can be performedin a different manner than a music player at an application layer. It isunderstood that a processor 120 may be utilized for any suitablepurpose.

As mentioned above, the NFC device 104 transmits short-range transceiverconfiguration information 122, available bandwidth 124 for eachtransport configuration, and active application type information 126.The NFC device 104 can also receive another device's configurationinformation, available bandwidth, and application type information fromthe other communication device's NFC device. If the controller 117 canmatch transport configurations, corresponding bandwidths, andapplication types to determine that the two devices can share contentwirelessly, the two devices may implement state machines in parallel aswill be described later. If the parallel state machines each concludethat content can be transferred wirelessly between the two devices, thecontroller 117 initiates communication between the two devices via aselected short-range transceiver. As previously mentioned, the mobilecommunication device 102 includes at least one short-range transceiver106 that can be, for example, of the Bluetooth or WiFi type. Additionalshort-range transceivers 108 and 110 may provide more transport optionsbetween two or more devices. Of course, a short-range transceiver may beof any suitable type.

The mobile communication device 102 further includes a memory 128 andmodules 130 that carry out certain processes of the methods as describedherein. Modules may include, for example, a Bluetooth availablebandwidth module 164 and a WiFi available bandwidth module 168 that keeptrack of bandwidth utilizations by the device 102 for each transport, aswell as modules to determine the content type and availability ofapplications, such as a voice call module 133, an image module 135, amusic module 137, and/or a video module 139. Steps of methods mayinvolve modules and other modules (not discussed here) may be inferredby the methods discussed herein. The modules can be implemented insoftware, such as in the form of one or more sets of pre-storedinstructions, and/or hardware. The modules may be installed at thefactory or can be installed after distribution by, for example, adownloading operation. The operations of the device in accordance withthe modules will be discussed in more detail below.

Software applications 132 may be stored in memory 128 such as ROM andmay include, for example, a call application, an image application, anaudio application, a video application, a word processing application,and other applications. It is understood that any content processingapplication is within the scope of this discussion. One or more types ofcontent processing applications may be executed by the controller 117.Short-range transceiver software stacks 134, include a WiFi stack thatwould be loaded onto WiFi transceiver 106, a Bluetooth stack that wouldbe loaded onto Bluetooth transceiver 108 and/or other short-rangewireless communication software stacks that may be loaded onto anothertype of transceiver 110. In other implementations, the software stacks134 may be in different memory structures. For example, the sharedmemory 138 may be the same as or a subset of memory 128, or may beindependent of memory 128. The software stacks 134 and the applications132 may be stored in the memory 128 and may be updated separately.

The configuration information 136 may be updated either upon power up ofthe device 102 or when the transport configuration has been changed by adevice monitor 140 which may be a component of the controller 117. Thedevice monitor 140 tracks information relating to the short-rangewireless transceivers 106, 108, 110, and the applications 132. Itrecords this information as device state information. The applicationinformation 132 may be updated either when a “tap-to-configure” action(discussed below) occurs or when content sharing is established. Asdiscussed above, the communication by the NFC device 104 ofconfiguration information 122, available bandwidth 124, and applicationtype information 126 can be accessed via the NFC device 104 transponderlink. A device record list that can store NFC-communicated informationresides in memory 128.

When this device 102 receives configuration information, availablebandwidth, and application type information of another device, thisdevice 102 may find an appropriate configuration for content sharingwith the other device, bring up the appropriate software stack 134,establish a short-range wireless connection, bring up the application132 corresponding to the content to be shared, and start to share thecontent via the established short-range transceiver, for example, 106,108, or 110.

A synchronization mechanism 118 automatically determines the selection,configuration, and setup of a short-range transceiver 106, 108, or 110,automatically selects and configures corresponding applications 132 forthe sharing of content, and automatically synchronizes the sharingprocedure. As mentioned, the device monitor 140 monitors and modifiesthe device state information, including configuration information 136,when the device state and/or configuration changes.

FIG. 2 depicts a “tap-to-configure” example including a first device202, a second device 241, and a third device 242. In this example, thefirst device 202 is in a two-way voice call with a remote communicationdevice (not shown) via a network 246. The devices 202, 241, and 242 mayeach be implemented as wireless communication device 102 in accordancewith FIG. 1. The network 246 may be any type of wireless networkincluding an ad hoc or wireless personal area network, a WiFi orwireless local area network, and a cellular or wireless wide areanetwork. Likewise, the network 246 may be of any suitable configuration.The depiction of a network in FIG. 2 is simplified for illustrativepurposes.

As mentioned above, in addition to voice communications, mobilecommunication devices may include features such as still and videocameras, video streaming and two-way video calling, email functionality,Internet browsers, music players, FM radios with stereo audio, games,word processors, and organizers. Content for feature applications thatmay run on a mobile communication device includes, for example, voicecontent type, image content type, audio content type, video contenttype, and document and text content type. When an application is activeon the mobile communication device, content relating to the applicationcan be made available to the user of the device. In the example of FIG.2, voice communication is transmitted via the network 246 to the device202. With a “tap-to-configure” 243 between device 202 and device 241, ashort-range wireless connection between device 202 and 241 may be set upto share the voice communication. In the same or another embodiment, a“tap-to-configure” 244 between device 202 and device 242, sets up aconnection between device 202 and 242 substantially transparently to theusers.

With a “tap-to-configure” 243, the NFC device 104 (see FIG. 1) of mobilecommunication device 202 transmits to the second device 241 short-rangetransceiver 106, 108 and 110 parameters such as configurationinformation 122 and available bandwidth 124, plus application typeinformation 126, and receives the second device's configurationinformation 122, available bandwidth 124, and application typeinformation 126. Additionally, with a “tap-to-configure” 244 motion, theNFC device 104 of mobile communication device 202 may transmitconfiguration information 122, available bandwidth 124, and applicationtype information 126 to a third device 242, and receive the thirddevice's configuration information, available bandwidth, and applicationtype information. It is understood that other information and/orparameters may be exchanged during a “tap-to-configure” action.

A “tap-to-configure” characteristic allows a small amount of informationto be transmitted between two NFC devices of two mobile communicationdevices. Advantageously, users may tap, nearly tap, and/or bringtogether to a predetermined distance (that can be determined by theconfiguration of the NFC devices), their devices without being requiredto hold the mobile communication devices together for an extendedperiod. In a short period of time, the NFC device 104 (see FIG. 1) canprovide information to determine an appropriate short-range transport(via a short-range transceiver 106, 108 and/or 110) for transmitting andreceiving digital content from one device to the other device. Thetransport could be for example, Bluetooth, WiFi, and/or anothertransport. The available bandwidth of the transports may be adetermining factor in selecting a particular transport.

Where a voice call with a remote device (not shown) is taking place asan active application on the mobile communication device 202, a voicecall sharing application software program may be selected and configuredon two devices such as 202 and 241 for transmitting voice content fromthe first wireless communication device to the second wirelesscommunication device over a short-range wireless communication link toresult in a 3-way call. Accordingly, the “tap-to-configure”characteristic may simplify the process of connection establishment andcontent sharing over wireless local connectivity such as Bluetooth orWiFi. While a first user's application is active in, for this example, avoice call, the NFC devices assist to substantially automatically set upcompatible short-range wireless transceivers.

The wireless short-range transceivers are set up to share the contentcorresponding to the active application of the first device 202 betweenthe first device 202 and second device 241. Another software program onthe second device 241 may be initiated to facilitate the voice callsharing. For example, the processor 120 (see FIG. 1) may be a real-timevoice processor for voice call sharing. Real-time voice processors onboth devices 202 and 241 may be utilized because speech processing maybe performed in a different manner than a music player at an applicationlayer. Therefore, with a “tap-to-configure” 243 motion, the devices 202and 241 may automatically select and configure correspondingapplications for both devices for sharing content, and may automaticallysynchronize the sharing procedure among the participating devices 202,241.

FIG. 2 further illustrates various relationships that a plurality ofdevices may have with one another while in short-range communicationwith one another. A “tap-to-configure” 244 motion with device 242 setsup a second short-range wireless connection between device 202 anddevice 242. It is understood that any number of devices may have aconnection set up between them with a “tap-to-configure” motion as longas bandwidth is available. In this manner, device 202 is in a“point-to-multipoint” (P2M) configuration with devices 241 and 242.Also, devices 202 and 241 are in a “peer-to-peer” configuration as aredevices 202 and 242.

FIG. 3 is a high-level timing diagram illustrating the“tap-to-configure” sequence of events between a first device 302 and asecond device 341 (equivalent to the first device 202 and the seconddevice 241 shown in FIG. 2). The devices may touch or otherwise comewithin range of one another 336 so that their respective NFC devicesestablish a near-field communication link 348. Information passed fromdevice 302 and received by device 341 through the transponder link 348,as discussed above, may include the first device's configurationinformation, available bandwidth, and application type information.Likewise, information passed from device 341 and received by device 302through the transponder link 349 may include the second device'sconfiguration information, available bandwidth, and application typeinformation. An NFC device 104 (see FIG. 1) may transmit and receiveinformation at, for example, 400 KB/sec. The data format for thecommunication between devices in accordance with their respective NFCdevice is discussed in detail below.

FIG. 4 is a high-level diagram of different possible components of theconfiguration information 422, the available connectivity capabilities424, and the application type 426 that a wireless communication device402 may transmit via its NFC device 104 (see FIG. 1) to another wirelesscommunication device. As discussed above, the disclosed methods anddevices make use of the sharing of short-range device configurationinformation, bandwidth availability information, content information,and application information to automatically synchronize the contentsharing between two or more NFC-compatible wireless devices to providehigh-quality short-range content sharing and save battery power. In oneembodiment, a specific data format is used to encapsulate theNFC-transmitted information. It is understood that any appropriate dataformat may be employed.

In the case of content sharing among mobile devices, for example devices202 and 241 (see FIG. 2), the NFC-transmitted data may include, forexample, the short-range wireless transceiver capability of the mobiledevices, the detailed configuration information of each short-rangewireless transceiver, the type and detailed configuration information ofthe application consuming the sharing content, and the type, size,pointer and other relevant information of the sharing content. A methodfor content sharing may be able to fulfill the followingfunctionalities: automatically record and update the NFC-transmittedinformation, transfer the NFC-transmitted information amongparticipants, automatically synchronize the configuration and setup ofthe short-range wireless connection, automatically select and configurecorresponding applications for the sharing content, and automaticallysynchronize the sharing procedure among mobile devices. In oneembodiment, a generic method and apparatus may provide the abovefunctionalities along with a high quality user experience and batterylife savings.

A solution for the sharing task may be carried out transparently to theusers or with minimal user interaction. A device record list can storeentries of NFC-communicated information. As mentioned above, the devicerecord list is in memory 128 (see FIG. 1). Each entry of the devicerecord list may have a unique device ID and the NFC-transmittedinformation for that device. The unique device ID may be a combinationof the Bluetooth device address and the WiFi MAC address or may be otherinformation that can identify the device. The NFC-transmittedinformation of the record may include (i) a permanent part and (ii) avariable part. An example of a permanent part of the NFC-transmittedinformation is the device's local connectivity capabilities. An exampleof a variable part of the NFC-transmitted information is a device'sstate reflecting current main activity, e.g. “VOICE CALL” or “PLAYINGAUDIO.”

If no matching device ID is found in the device record list, it may meanthat a particular exchange is the first instance of a “tap-to-configure”between the two wireless communication devices. The second device canrecord the unique device ID and other information and configure itsshort-range communication interface (e.g., Bluetooth, WiFi or otherconnectivity modules 134 (see FIG. 1)) for execution by the controller117 to effect operation of the short-range transceivers. If the seconddevice finds a matching record for the first device's ID, it can updatethe variable part of the record upon receiving peer NFC-transmittedinformation. When the entries are updated, each device activates its ownsynchronization mechanism 118 and executes its own Peer-to-Peer StateMachine (P2PSM) including configuring its short-range wirelessinterface, establishing a short-range wireless connection with the otherdevice, bringing up the application (application modules for audio orvoice call 133, image 135, music 137, video 139, or other medias) thatcorresponds to the device state and the sharing content, and startingthe content sharing.

In this example, configuration information 422 can include a Bluetoothconfiguration 450 with Bluetooth configuration type 451, a Bluetoothdevice address 452, a class of device 453, a link key 454, and a deviceshort name 455. Also for example, configuration information can includea WLAN configuration 456 including information such as WLAN standardsinformation (e.g., IEEE Standard 802.11a, 802.11b, and/or 802.11g) 457,a Service Set Identifier (SSID) 458, a connection mode 459, an RFChannel ID 460, and an encryption type and corresponding encryptionkey(s) 461. Other configuration information 462 can be included asappropriate. The device 402 may provide information relating to theconnectivity capabilities 424 that it has available.

For example, were the device currently substantially utilizing its WiFitransceiver, it may have little or no bandwidth available on a WiFitransport. However, it may have available Bluetooth bandwidth. It maysend to the other device via the NFC device 104 (see FIG. 1),information relating to Bluetooth 463, such as whether any resources areavailable for one or more Bluetooth transports 464, how many connectionsare already utilizing one or more transports 465, and how much bandwidthis left for one or more transports 466. On the other hand, were thedevice 402 currently substantially utilizing its Bluetooth transceiver,it may have little or no bandwidth available on a Bluetooth transport.However, it may have available WiFi 467 bandwidth. It may send to theother device via the NFC device 104, information such as how much WiFibandwidth is available for one or more WiFi transports 468, how manyconnections are already utilizing one or more WiFi transports 469, andhow much bandwidth is left for one or more WiFi transports 470.

Also, the device 402 may send via its NFC device 104 (see FIG. 1)application type information 426 that may be, for example, a maximum ofone application indicator that indicates a highest priority applicationsoftware program that is running on the device's processor. If multipleapplications or functions are active, a user interface may prompt theuser with options from which to choose. For example, after two phones“tap-to-configure,” a user of one phone may choose to join a telephonecall in which the other phone is engaged. The application indicator maybe, for example, a call sharing application indicator 433, an imageviewer application indicator 435, an audio player application indicator437, a video player application indicator 439, or a document and textediting application indicator (not shown). Also, the application typeinformation 426 may include related content parameters such as time,type or format, and size parameters as part of the information flow viaNFC devices 104 between devices such as 402 and 241 (see FIG. 2).

As mentioned above, more than two devices may establish compatiblewireless transport configurations via a “tap-to-configure” touch. Forexample, a point-to-multipoint (P2M) connection may be implemented inwhich the first wireless device has a short-range P2P connection with asecond wireless communication device and at least one other short-rangewireless P2P connection with another wireless communication device.

FIG. 5 is a signal flow diagram illustrating a Bluetooth connectionusing a virtual link key and NFC information sent between a firstwireless communication device 502 and a second wireless communicationdevice 541. The devices 502, 541 may both be implemented as a wirelesscommunication device 102 of FIG. 1. As mentioned above, the processor120 (see FIG. 1) may be a real-time voice processor for voice callsharing. A real-time voice processor 120 is assumed in this examplebecause sharing a voice call locally requires capability for processingvoice audio streams from two or more different places simultaneouslyinside the device 502. The device combines inbound audio from multiplechannels together before sending it to the speaker. It directs the audiogenerated by the device (as well as the combined audio) to all otherparticipants including, for example, device 541 and a device 242 (seeFIG. 2). After the short-range wireless communication link isestablished between 502 and 541, the master device 502 may have controlover client devices, for example device 541, for enhanced functions suchas muting incoming or outgoing audio from/to a client participant,and/or tearing down the connection with the client.

The NFC Data Exchange Format (NDEF) specification described below candefine a message encapsulation format to exchange information betweentwo NFC Forum devices such as device 202 and 241 (see FIG. 2) or betweenan NFC Forum Device and an NFC Forum Tag. NDEF data can be used toencapsulate one or more application-defined payloads of arbitrary typeand size into a single message construct. Each payload is described by atype identifier, a length, and an optional identifier. Type identifiersmay be URIs, MIME media types, or may be NFC-specific types. The payloadlength is an unsigned integer indicating the number of octets in thepayload. The optional payload identifier enables association of multiplepayloads and cross-referencing between them.

In this example, device 502 has an active software application 531 toshare with a nearby device 541. In this example, the active softwareapplication is a cellular voice call with a remote device (not shown).As discussed above, the active software application could alternatelybe, for example, a digital photo, MP3 music playing, etc. Device 541 ispowered up 572. Both devices are assumed to be NFC Forum compatible.Device 502 “taps-to-configure” 543 (or comes close to) device 541.Device 502 generates a virtual link key Kv 571 and saves it to its NFCshared memory 138 (see FIG. 1). A virtual link key Kv is a randomized128-bit number generated by the communication processor of the masterdevice upon the touch of the two devices. This process may be moresecure compared with using a link key 454 (see FIG. 4) because thevirtual link key is generated anew every time the two devices touch viaNFC.

As discussed above with respect to FIG. 4, information includingconfiguration information, available bandwidth, and application typeinformation is transmitted 548 from device 541 and received by device502. Likewise, information including configuration information,available bandwidth, and application type information is transmitted 549from device 502 and received by device 541. Transmission steps 548 and549 can alternately occur in the reverse order or simultaneously. Thatis, a communication controller or processor of the master device (e.g.,device 502) reads the NFC-transmitted information of the second device(e.g., device 541) via NFC during the “tap-to-configure” 543 useraction. The communication controller or processor of device 541 alsoreads the NFC-transmitted information of the first wirelesscommunication device 502 via NFC during the “tap-to-configure” 543.

In this example, both devices 502, 541 next enter the START state oftheir own P2PSM (see FIG. 9, below). Device 502 and device 541 bothreach state S_(ij) (for example, i=application, in this example a voicecall; j=short-range transport, in this example Bluetooth) independently,based on the transferred NFC information and based on each device's owninformation. If there is no available channel for either one of the twodevices, the state machine in the two devices will go to END state. Anerror message may be displayed on the user interface reporting thefailure. If the two devices do not each separately conclude failure, thecommunication processor of device 502 passes 574 the virtual link key Kvto the selected short-range transceiver 108 (in this example, Bluetooth;see FIG. 1), along with the Bluetooth addresses of both devices. At thesame time, the communication processor of device 541 can pass 575 thevirtual link key Kv and the addresses of both devices to its ownBluetooth connectivity component. Thus, the virtual link key Kv isshared between both devices 502, 541.

Device 502 and device 541 determine a wireless communication channel inaccordance with their respective short-range transceivers (e.g.Bluetooth transceivers) and determine the available bandwidth inaccordance with their respective available Bluetooth bandwidth module164, as well as determine the content type and availability ofapplications in accordance with their respective applications modules,such as a voice call module 133. That is, device 502 and device 541 bothindependently reach a state machine START state 576, 577 again as theresult of finding the connection channel successfully. The NFCinformation may be updated but not necessarily re-transmitted (as willbe discussed in more detail below). As a result, the first wirelesscommunication device 502 established 578 a short-range transport such asa Bluetooth connection, with the second wireless communication device541.

Assuming that the first wireless communication device 502 is sharing acall with the second wireless communication device 541, the device's 502audio processor's stream routing component may control the audio mix andaudio split. It may combine the audio input from the local connectivitycomponent of device 541 and the cellular communication component of theremote device (not shown) before it sends the combined audio to thespeaker. It may pick up the audio from the microphone and split it tothe local connectivity components in use and to the cellularcommunication component if device 502 is directly involved in thecellular call. Processor 120 (see FIG. 1) of device 502 may also acceptrequests from the communication processor or controller 117 to mute,and/or increase/decrease voice volume for different channels. If duringa call, the user of device 502 wants to exclude one direct client fromthe conversation temporarily, a control module can discard the datafrom/to that individual connection and resume it later upon request bydevice 502. Device 502 may keep track of the whole connection network tocontrol device 541 (and any other devices which are not directlyconnected to it), or allow device 541 (or another device) to controlmute, and/or increase/decrease voice volume for other devices.

For example, a device 502 may use AT commands (including non-standard ATcommands) to mute the microphone of a directly-connected device 541. Forcontrol of indirectly-connected devices (not shown), adirectly-connected device 541 can be used as a relay to send commands toindirectly-connected devices as addressed. Alternately, adirectly-connected device may be instructed to implement its receivedcall control commands “downstream” to other devices.

In addition to routing and mixing the various audio streams to theirproper paths, the audio processor 120 (see FIG. 1) of device 502 mayalso accept requests from its communication processor or controller 117to mute audio paths, increase/decrease voice volume for the differentpaths, or to exert any other type of control on the audio stream. Theaudio processor of device 502 may also be able to provide various formsof signal processing on the composite audio streams depending on whichpath it is operating upon. For example, the composite uplink audiostream to a short-range wireless transceiver such as Bluetoothtransceiver 108 (see FIG. 1) and the short-range connectivity componentsmay have echo cancellation, noise suppression, and any other digitalfiltering necessary or desirable. The audio sent from the audioprocessor of device 541 to the codec speaker of device 541 may also havesome type of audio shaping performed on it to make the audio sound cleanto the user of device 541. It may also have sidetone added for comfort.

If both devices successfully configure 579 and 580 their respectiveaudio path, the voice call is shared 581 and 582 between devices 502 and541 via their respective short-range wireless transceivers. If eitherdevice 502 or device 541 fails to successfully configure 579 or 580their audio path, an error message may be reported to the userinterface. If the voice call sharing is ended 583, 584 because eitherone of the users hangs-up the call or the connection drops for anyreason, the controller 117 (see FIG. 1) of device 502 and device 541 mayupdate 585, 586 the NFC information, which is not necessarilyre-transmitted with the released connection resource.

As discussed above, the described signal flow diagram is an embodimentof the voice call sharing. It is understood that any number ofalternative applications may follow the same or similar process. Forexample, in another embodiment, images, music, documents, or video maybe similarly shared.

The single call sharing scenario can also be extended to a second casewhere both mobile phones are in separate cellular network calls withdifferent parties. Here, both parties might wish to share the ongoingcalls with each other, effectively creating a 4-way conference call withthe two separate cellular network calls via the local connectivitycomponent. Such a scenario may be likely to occur among friends, familymembers, and work colleagues in a variety of situations. Touching thetwo mobile phones together is a natural and intuitive way for persons toshare the separate ongoing call(s) with each other.

FIG. 6 depicts an example of call sharing between co-located devices.The devices are co-located so that they may “tap-to-configure” to set uptheir communication. Also in this example, they communicate overshort-range wireless transports such as Bluetooth or WiFi, which meansif they move out of range, they will lose their connection. Device 602is in communication with a remote party via a cellular network 646, andso the devices can share this remote party call with a variety ofco-located devices. In this example, device 602 is in a“point-to-multipoint” (P2M) configuration with co-located devices 641and 642. Also, devices 602 and 641 are in a “point-to-point” (P2P)configuration as are devices 602 and 642 and devices 642 and 645. Device647 is a WiFi hub or router, which can be used to communicate betweenthe device 642 and another device using Voice over Internet Protocol(VoIP), for example. Due to the various connections shown, the device645 is sharing the same remote party telephone call with devices 602,641, and 642.

FIG. 7 depicts an arrangement where three devices may share three calls,and therefore have 6-way communication. In this example, device 702 isin voice communication with a remotely-located person through a cellularnetwork 746. Device 741 is in voice communication with yet anotherremotely-located participant through another cellular network 756. Athird device 742 is in voice communication with the lastremotely-located participant through a third cellular network 766. Theco-located devices 702, 741 and 742 may “tap-to-configure” to set uptheir communication and share in their three different voice calls toform a 6-way communication. Each device co-located 702, 741 and 742 hasa point-to-point connection with the other two co-located devices,resulting in a point-to-multipoint configuration for each co-locateddevice.

FIG. 8 depicts a high-level instance of a Synchronization MechanismState Machine in accordance with an embodiment. The synchronizationmechanism 118 state machine (see FIG. 1) runs separately on allparticipating devices. This high-level state machine depicts connectionstates. A lower-level state machine (FIG. 9) will include details of aparticular connection, and due to the design of the lower-level statemachine, the short-range wireless communication link selection andset-up for each device can independently come to the same conclusion.

An embodiment of a finite state machine definition is as follows: Thesynchronization mechanism 118 (see FIG. 1) is a sextuple <Σ,

s₀, δ, ω>, where: Σ is the input alphabet that is a set of inputs orevents,

is the output alphabet,

is a finite non empty set of states, s₀ is an initial state, δ is thestate transition function, and ω is the output function.

Σ is the input alphabet that is a set of inputs or events. On any inputor event, a corresponding transition will be triggered. Σ includes fourelements, Σ={TOUCH, RESET, A×Γ×B=0, A×Γ×B=1}, where TOUCH and RESET arestring inputs and A×Γ×B=0 and A×Γ×B=1 are expression inputs. TOUCH canindicate the device running the synchronization mechanism 118 has“tapped-to-configure” another device to initiate content sharing, andRESET indicates the device is rebooted or software reset.

The expression A×Γ×B is defined as follows. F is a matrix of dimension3×m, and is the output of the state machine. A is a row vector, that is,a matrix of dimension 1×3, A=[0 1 0]. B is a column vector, that is, amatrix of dimension m×1, B=[1 1 . . . 1]^(T). B is a matrix transpose of[1 1 . . . 1] which contains m 1s. The notation A×Γ×B is to beunderstood as matrix multiplication. The expression A×Γ×B evaluates tothe sum of the elements of the second row of the matrix Γ. A×Γ×B=0 canindicate there is no current connection established on this device, asexplained below. A×Γ×B=1 can indicate there is only one currentconnection established on this device. The detailed definition of Γ isshown in the following paragraph.

is the output alphabet. When a transition occurs, a corresponding outputΓ will be produced.

is the set of possible matrices Γ, that is,

={Γ} where Γ is a matrix of the form

$\Gamma = {\begin{bmatrix}{T\; 1} & {T\; 2} & \text{,,,} & {Tj} & \ldots & {Tm} \\{L\; 1} & {L\; 2} & \ldots & {Lj} & \ldots & {Lm} \\{P\; 1} & {P\; 2} & \ldots & {Pj} & \ldots & {Pm}\end{bmatrix}.}$

Γ has 3×m elements, where m is the number of transports the mobiledevice has. Tj indicates whether the transport of type j is fullyoccupied or not. Tj=1 indicates the transport of type j is fullyoccupied. The full occupation may be because there is no more channelsavailable or there is no bandwidth left. Tj=0 indicates the transport oftype j is still available for further uses. Lj is the number ofconnections existing for transport of type j. For example, if theBluetooth transport is associated with i=1, L1=4 indicates that fourBluetooth connections exist. Pj is the accumulated throughput used onthe transport of type j, given as a percentage.

As an example, suppose a device has two connections with two otherdevices via a WiFi ad hoc mode and that the data rate can be 11 Mbps.The WiFi standards (including IEEE Standard 802.11g) require only thatad-hoc mode communication supports 11 Mbps data rate. An example of Γcorresponding to this situation is given below.

$\begin{bmatrix}0 & 0 & \text{,,,} & 0 & \ldots & 0 \\0 & 2 & \ldots & 0 & \ldots & 0 \\0 & 40 & \ldots & 0 & \ldots & 0\end{bmatrix}\quad$

In this example, the WiFi transport is associated with j=2. L2=2indicates there are two WiFi connections. P2=40 indicates that 40% ofthe WiFi data rate is used and there is 60% bandwidth left, which is 11Mbps×60%=6.6 Mbps.

is a finite non-empty set of states.

={NON, P2P, P2M}, where NON indicates the device has no sharingactivity, P2P indicates the device is sharing content with a singleother device, and P2M indicates the device is sharing content withmultiple other devices.

s₀ is an initial state. s₀=NON, that is, the state machine begins in astate in which the device has no sharing activity. The device is in theinitial state of the state machine upon power up or hardware or softwarereset. The device may also re-enter the state NON upon completion ofsharing activity, as shown in Table 1.

δ is the state transition function: δ:

×Σ→

. δ describes the resulting state of the state machine when the statemachine receives an input, that is, an element of Σ, while the statemachine is in a particular state, that is, a particular element of

. A complete specification of δ, in accordance with an embodiment, isgiven in Table 1.

TABLE 1 State Input New State NON TOUCH P2P P2P A × Γ × B = 0 NON P2PRESET NON P2P TOUCH P2M P2M A × Γ × B = 1 P2P P2M TOUCH P2M P2M RESETNONElements of

×Σ that cannot occur or that do not lead to transitions have beenomitted from Table 1.

ω is the output function. ω:

×Σ→

. ω describes the output produced by the state machine when the statemachine receives an input, that is, an element of Σ, while the statemachine is in a particular state, that is, a particular element of

. As described above, Γ is a 3×m matrix whose possible values constitutethe output alphabet of the state machine. A value of Γ with particularsignificance is denoted Γ0:

${{\Gamma \; 0} = \begin{bmatrix}0 & 0 & \text{,,,} & 0 & \ldots & 0 \\0 & 0 & \ldots & 0 & \ldots & 0 \\0 & 0 & \ldots & 0 & \ldots & 0\end{bmatrix}}\quad$

(a 3×m dimension matrix with all 0s).Γ0 signifies that none of the transports of the device are occupied,that there are no connections with other devices, and that no bandwidthis consumed. Table 2 provides a specification of ω in accordance with anembodiment.

TABLE 2 State Input Output NON TOUCH Γ = Γ0 P2P A × Γ × B = 0 Γ = Γ0 P2PRESET Γ = Γ0 P2P TOUCH Γ = Γ P2M A × Γ × B = 1 Γ = Γ P2M TOUCH Γ = Γ P2MRESET Γ = Γ0Thus, in certain situations the Synchronism Mechanism State Machineoutput Γ is reset to Γ0 and in other situations the output of thehigh-level Synchronism Mechanism State Machine remains the same at Γ.

FIG. 8 includes the transitions between states that are associated withan input/output pair. The input above the slash is the event conditionfor that transition. The output below the slash is the result of thetransition. The output will be stored in memory, such as the sharedmemory 138 (see FIG. 1) associated with the state machine. Outputslacking changes are not shown in FIG. 8. In this example there are twoNFC-compatible wireless communication devices, such as devices 202 and241 (see FIG. 2) having memory outputs where T is transport, L is numberof links and P is bandwidth that is associated with the NFC-transmittedinformation 122, 124 and 126. The output Γ is stored in the sharedmemory 138 of each device 202, 241 in order to support content sharingbetween the two devices.

At the beginning, the device 202 (see FIG. 2) is in the NON state 810,which can indicate the device has no sharing activity. When it touches889 another device (for example, device 241), it transitions to the P2Pstate 820 and initializes the output Γ to Γ0. In the P2P state 820, aPeer-to-Peer State Machine (P2PSM) will be called. See FIG. 9 below.P2PSMs running in parallel on the two devices can synchronize thesharing procedure of those two devices and set or clear the column 811,813 and/or another column in the output matrix Γ corresponding to thetransports for sharing. Detailed operation of the P2PSM will be givenbelow. In the P2P state 820, if there is no connection existing for thisdevice (A×Γ×B=0) or the device is reset 891 by software or reboot, thesynchronization mechanism 118 (see FIG. 1) returns to the NON state 810.

In the P2P state 820, if the device touches a third device, such asdevice 242 (see FIG. 2), it transitions 890 to the P2M state 830. In theP2M state 830, every time it touches another device, it will re-enter893 this P2M state 830. Anytime it enters or re-enters 893 the P2Mstate, a P2PSM will be called. In the P2M state 830, if there is onlyone connection for this device (A×Γ×B=1) it will return 888 to the P2Pstate. (A×Γ×B=1) indicates there is only one element of a second row ofmatrix Γ that is non-zero and this element is equal to 1. In the P2Mstate 830, if the device is reset by software or reboot 892, it willreturn to the NON state 810.

FIG. 9 illustrates an example of a P2PSM 900 running on a specificdevice that may be customized to the media types and transports that thedevice supports. At least two parties are involved in content sharing.The device 202 (see FIG. 2) holding the content may be called a masteror media server. The device 241 receiving content may be called a slave,client, or media renderer. As mentioned previously, the P2PSM isactivated whenever a device enters the high-level P2P state 820 or theP2M state 830 shown in FIG. 8.

In this sample situation, both devices 202, 241 (see FIG. 2) are capableof Bluetooth and WiFi communication, and both support image, audioincluding voice calls, and video media content. With n as the number ofapplication types the mobile device supports (such as image, video, mp3music, voice call, etc.) and m as the number of short-range wirelesstransports the mobile device has (such as Bluetooth, WiFi, UWB, etc.),in this example n (applications)=3 and m (short-range wirelesstransports)=2. Thus the example P2PSM in each device 202, 241 has n×m+2(or 3×2+2)=8 states. The Start (S) state 994 in each P2PSM indicatesthere is no content being shared or prior content sharing has begunsuccessfully. The End (E) state 995 indicates the devices cannot sharemedia content over any available short-range wireless (Bluetooth orWiFi) transport. If the state machine enters the End state 995, an errormessage may propagate to the user interface. The other six states areexplained as below in Table 3.

TABLE 3 State Definition S₁₁ Share image content over Bluetoothconnection. S₁₂ Share image content over WiFi connection. S₂₁ Shareaudio content over Bluetooth connection. S₂₂ Share audio content overWiFi connection. S₃₁ S31 - Share video content over Bluetoothconnection. S₃₂ S32 - Share video content over WiFi connection.In this example, the Bluetooth transport has higher priority than theWiFi transport because Bluetooth consumes less power, which is importantfor mobile device battery life. Thus, the Bluetooth is explored first(e.g., S_(X1)=BT, S_(X2)=WiFi) in this example.

For audio media sharing, the above-described P2PSM synchronizationprocedure may be followed (branch S_(2X), states S₂₁, S₂₂). For videocontent sharing, because video media sharing requires more bandwidth, aspecific policy may be added to the P2PSM (branch S_(3X)). For example,in FIG. 9, the condition for the transition from state S₃₁ to S₃₂ can bemodified from: FAILURE={The Bluetooth interface is in use; cannot setupBluetooth connection; the Bluetooth connection is broken} toFAILURE=FAILURE∪{streaming frame rate <15 frames/second (or anotherpre-defined threshold)}. The condition for the transition from state S₃₂to the End state 995 can be similarly modified. Except for thismodification, the synchronization procedure may stay the same as above.By adding this specific policy, a pre-defined quality for video sharingmay be guaranteed.

The device that initiates the exchange is defined by the Near FieldCommunication Interface and Protocol (NFCIP-1) specification. Asmentioned above, the NFC-transmitted information may have theconfiguration information and any currently successful state informationfor P2M. The synchronization mechanism 118 (see FIG. 1) saves theexchanged state information in the shared memory 138.

During communication via a short-range transceiver 106, 108 and/or 110(see FIG. 1), both devices stay in the same state of their respectivehigh-level Synchronization Mechanism State Machines (see FIG. 8). Duringthe transition from one state to the next in the SynchronizationMechanism State Machine, the shared memory of each device may bescanned. If the lower-level Peer-to-Peer State Machines (P2PSMs) runningsimultaneously in each device conclude that no corresponding transportis available, or the remaining bandwidth is not larger than the minimumbandwidth request for sharing media of corresponding type, a failureoccurs and the transport is avoided. The synchronization of sharingbetween two devices may be guaranteed by equivalent P2PSM state machinesrunning on both devices and achieving the same results.

For Point-to-Multipoint (P2M) sharing, if two devices successfully startcontent sharing in the P2P state 820 (see FIG. 8) and the first devicetouches a third device, the high-level state machine for the firstdevice will transition to the P2M state 830 and the P2PSM will be calledagain for the first device and run concurrently with a P2PSM of the newdevice. For each device, the P2PSM will check the synchronizationmechanism 118 (see FIG. 1) and shared memory 138 to make sure that asuitable transport is available.

A Synchronization Mechanism State Machine (see FIG. 8) in each device202, 241 and 242 (see FIG. 2) may differentiate between P2P and P2Mstates, and the results of the P2PSM in each device depend upon the modeof the device (e.g. image, audio, etc.) and differentiate among localconnectivity technology (e.g. Bluetooth, WiFi, etc.). As discussedherein, the P2PSM inputs are extended to the NFC forum frame format.

An embodiment of a peer-to-peer state machine (P2PSM) definition is asfollows: The P2PSM is a sextuple <Σ,

s₀, δ, ω>, where: Σ is the input alphabet that is a set of inputs orevents,

is the output alphabet,

is a finite non empty set of states, s₀ is an initial state, δ is thestate transition function, and ω is the output function.

Σ is the input alphabet. It is a set of inputs or events. Specifically,Σ={1, 2, . . . n, FAILURE, SUCCESS, j-DONE}, where 1, 2, . . . n standfor the media content type. The inputs FAILURE and SUCCESS mean thecontent sharing has either failed or successfully started. j-DONE canindicate the sharing over transport j has either failed or successfullyfinished.

is the output alphabet.

={Γ}. It has the same definition as in synchronization mechanism 118(see FIG. 1) discussed above in connection with FIG. 8. There is acommon memory space in the device shared memory 138 assigned to theoutput of the synchronization mechanism 118. Every P2PSM may operate onthe same memory space within its device.

is a finite non empty set of states.

={S, E, S₁₁, S₁₂, S_(ij), . . . S_(nm)}, where S is the start state andE is the End state. S_(ij) can indicate the device starts to share mediaof type i over transport j. The P2PSM has n×m+2 states.

s₀ is an initial state. s₀=S. In the initial state, no media is beingshared.

δ is the state transition function: δ:

×Σ→

. δ describes the resulting state of the state machine when the statemachine receives an input, that is, an element of Σ, while the statemachine is in a particular state, that is, a particular element of

. A complete specification of δ is given in Table 4 for this embodiment.

TABLE 4 State Input New State S i S_(i1) S_(ij) FAILURE S_(i(j+1)),where j < m S_(ij) SUCCESS S S_(im) FAILURE E S j-DONE S E — SElements of

×Σ that cannot occur or that do not lead to transitions have beenomitted from Table 4.

ω is the output function. ω:

×Σ→

. ω describes the output produced by the state machine when the statemachine receives an input, that is, an element of Σ, while the P2PSM isin a particular state, that is, a particular element of

. As described above in connection with FIG. 8, Γ is a 3×m matrix whosepossible values constitute the output alphabet of the P2PSM, and aparticular value of Γ is

${{{\Gamma \; 0} = \begin{bmatrix}0 & 0 & \text{,,,} & 0 & \ldots & 0 \\0 & 0 & \ldots & 0 & \ldots & 0 \\0 & 0 & \ldots & 0 & \ldots & 0\end{bmatrix}}\quad}.$

As discussed above, Γ0 signifies that none of the transports of thedevice are occupied, that there are no connections with other devices,and that no bandwidth is consumed. Define the 3×m matrix C1 as

${C\; 1} = \begin{bmatrix}0 & 0 & \text{,,,} & 0 & \ldots & 0 \\1 & 0 & \ldots & 0 & \ldots & 0 \\{Ri} & 0 & \ldots & 0 & \ldots & 0\end{bmatrix}$

Define corresponding 3×m matrices Cj as

${C\; j} = \begin{bmatrix}0 & 0 & \text{,,,} & 0 & \ldots & 0 \\0 & 0 & \ldots & 1 & \ldots & 0 \\0 & 0 & \ldots & {Ri} & \ldots & 0\end{bmatrix}$

Table 5 provides a specification of ω in terms of Γ, C1, and Cj.

TABLE 5 State Input Output S i Γ + C1 S_(ij) FAILURE Γ S_(ij) SUCCESSΓ + Cj S_(im) FAILURE Γ S j-DONE Γ − Cj

In C1, Ri is the minimum throughput request for sharing content of typei over transport T1. Expression Γ+C1 can indicate once the sharing ofcontent of type i is successfully started over transport T1, the numberof connections over transport T1 will be increased by 1 and theaccumulated throughput over transport T1 will be increased by Ri. In Cj,Ri is the minimum throughput request for sharing content of type i overtransport Tj. Expression Γ+Cj can indicate once the sharing of contentof type i is successfully started over transport Tj, the number ofconnections over transport Tj will be increased by 1 and the accumulatedthroughput over transport Tj will be increased by Ri. Expression Γ−Cjcan indicate once the sharing of content of type i is done by failure orsuccess, the number of connections over transport Tj will be decreasedby 1 and the accumulated throughput over transport Tj will be decreasedby Ri.

FIG. 10 is similar to FIG. 9 and illustrates an embodiment of a genericexample of a P2PSM 1000 running on a specific device that may becustomized to the media types and transports that the device supports.Details of FIG. 10 may be understood with reference to Tables 4 and 5.Every transition between states is associated with an input/output pair.The input above the slash is the event condition for that transition.The output below the slash is the result of the transition. The outputwill be stored in the shared memory 138 (see FIG. 1) associated with thesynchronization mechanism 118. Outputs lacking changes are not shown inthe FIG. 10.

In this generic P2PSM example, there is one Start(S) state 1094, oneEnd(E) state 1095, and n×m middle states, where m is the number ofshort-range wireless transports the mobile device has (such asBluetooth, WiFi, UWB, etc.) and n is the number of application types themobile device supports (such as image, video, mp3 music, voice call,document editing, etc.) as discussed above The state S_(ij) indicatesthe device starts to share media using application type i over transportj. The sequence of application types is random. The sequence of thetransports is listed by priority for each application type. Transport jhas higher priority than transport j+1. For each given application typei, the transport m has the lowest priority.

At the Start state 1094, if two devices are trying to share media oftype i, the state machine will transit to the state S_(i1). If sharingfails at state S_(i1), the state machine will transit to the next state(e.g., S_(i2)) until the state S_(ij) where sharing of media of type iover transport j starts successfully. Before entering any state S_(ij),the T_(j) and P_(j) of Γ will be checked. If Tj equals to 1, whichindicates there is no more resources available on transport j, thetransport will be skipped. If Tj equals to 0, Pj of F will be furtherchecked. If the remaining bandwidth is not larger than the minimumbandwidth request for sharing media of type i, the transport will beskipped as well.

After the sharing starts successfully, the number of connections overtransport j will be increased by 1 and the accumulated throughput overtransport j will be increased by Ri. This is done using the expressionΓ+Cj. The P2PSM 1000 will return to the start state 1094 on a SUCCESScondition. In the start state 1094, if the sharing successfully finishedor fails (j-DONE), the number of connections over transport j will bedecreased by 1 and the accumulated throughput over transport j will bedecreased by Ri. This is accomplished using the expression Γ−Cj.

Any time the P2PSM enters the start state 1094 because of a SUCCESS(successfully starting sharing over transport j) or j-DONE (finishes orfails sharing over transport j), the number of connections (Lj of Γ) andthe corresponding accumulated throughput (Pj of Γ) will be checked. Ifeither Lj reaches the maximum number of connections that transport j cansupport or Pj reaches 100% (no bandwidth left for further uses), Tj of Γwill be set to 1. Or else Tj of F will be reset to 0.

In the state S_(ij), if sharing fails, the P2PSM 1000 will transition tothe state S_(i(j+1)). The failure condition may include the followingcases: the transport is busy, the wireless connection has been broken,the device is out of range, and/or there are specific policies thatprevent sharing in that state.

If sharing fails on all transports, the P2PSM 1000 will transition tothe End state 1095, which will automatically sink to the Start state1094. The reason for separating the End state 1095 from the Start state1094 is that it may be necessary to call some special processes at theEnd state 1095, such as an error handling process. Specific policies forfailure conditions can have special requirements for certain types ofcontent or for certain network topologies.

FIG. 11 depicts an example of a generic packet configuration data format1100 for an NFC-transmitted information exchange between two wirelesscommunication devices. According to the NFC Record Type Definition (RTD)Specification, the NFC-transmitted information data type may be definedas an NFC Forum external type. The payload or type identifier 1197 is“companyname.com:cf” The type “companyname.com:cf” indicates that thisis a company specific configuration data type.

Under the RTD specification, the payload length 1198 is an unsignedinteger indicating the number of octets in the payload 1196. The payload1196 has n types of transport configuration records, an applicationconfiguration record, and a state record. Every transport configurationrecord has a transport mean identifier (T1 to Tn), a length, and apayload that contains the configuration details. In this example, aBluetooth payload 1196 is represented. Referring to FIG. 4, theBluetooth configuration 450 (see FIG. 4) is represented in FIG. 11 as“T1 configure,” T1 indicating (as mentioned in conjunction with FIG. 8)memory records of the output as: T is transport, L is number of links,and P is bandwidth that is associated with the NFC-transmittedinformation 122, 124, and 126 (see FIG. 1)

In the application configuration record 1130, the type of theapplication configuration record is “Ap”. The application record lengthis an unsigned integer indicating the number of octets of theapplication configuration information. The application configurationpayload 1196 contains the configuration details (per 426, see FIG. 4).

The type of the state information record is “St”. The state info_lengthis an unsigned integer indicating the number of octets of the stateinformation. The state information record 1199 may include the currentstate such as, 21 indicates state S21 (see FIG. 9), the minimumbandwidth request Ri to share a certain type of content, the outputmemory of the synchronization mechanism 118 (see FIG. 1), and othercurrent state related information. For music, the current state relatedinformation can be the time index of the music per 426. With the timeindex of the music, for example, the renderer can jump to that portionof the shared content that the master is currently playing or would liketo point out to the user of the renderer device.

FIG. 12 illustrates the format for the output memory of the stateinformation 1199 of FIG. 11. As mentioned above, T is transportavailability, L is number of links, and P is bandwidth. Referring toFIG. 4, T1 is illustrated as Bluetooth availability 464 (see FIG. 4), L1is illustrated as Bluetooth connections 465, and P1 is illustrated asbandwidth 466.

FIG. 13 is a specific example of FIG. 11 with T1=Bluetooth and T2=WiFi.The state information 1399 in this example is the Bluetooth 463 and WiFi467 connectivity availability. The type 1397 and payload length 1398 arethe same as described above with reference to FIG. 11. The payload 1396contains the BT configuration record 1321, the WiFi configuration record1329, and the current state information 1340. It is understood that anyvariations in the NFC-transmitted information is within the scope ofthis discussion.

FIG. 14 is a table that specifies the format of the combined “BT,” “BTconf length,” and “BT configuration” fields 1321 of FIG. 13. TheBluetooth configuration record contains the record type “BT”, the lengthin bytes of the configuration, and the configuration payload. The BTconfiguration payload can contain, for example, six parameters: a byteindicating the type of configuration data (defines the usage of the BTAuthentication Value parameter: discovery only, PIN, or public key), the6-byte Bluetooth Device address of the sending device, the 3-byte Classof Device, a 16-byte value to be used in creating the PIN for thesubsequent Bluetooth connection, a short name length field, and a shortname.

FIG. 15 is a table that specifies the format of the combined “Wla,”“WiFi conf length,” and “WiFi configuration” fields 1329 shown in FIG.13. The WiFi configuration record contains the record type “Wla”, thelength in bytes of the configuration, and the configuration payload. TheWiFi configuration payload shall contain two mandatory parametersaccording to: the WLAN standard (such as IEEE Standard 802.11a, 802.11b,802.11g, or a combination thereof) and the Service Set Identifier(SSID). Several optional parameters may include: a Connection Mode(Infrastructure or Ad-hoc) and RF Channel Id, Encryption type andcorresponding keys, and the Ethernet MAC address of the peer.

FIG. 16 is a table that specifies the format for the combined “St,”“State info length,” and State information” fields 1340 shown in FIG.13. The type of the state information record is “St”. The stateinfo_length is an unsigned integer indicating the number of octets ofthe state information. It is understood that any variations in theNFC-transmitted information is within the scope of this discussion.

Described are methods and devices for automatically coupling two or moremobile communication devices over a short-range communication link toshare content such as calls, music, video, documents, and games wheretwo or more devices automatically determine the feasibility of sharingthe content and negotiate to find an efficient manner in which to do so.In this way, the pairing between devices may be transparent to theusers. Moreover, a better choice in a transport may be selected withoutmuch user input.

Accordingly, while a first user's application is active on a firstwireless communication device, at least the first wireless communicationdevice and a second wireless communication device may substantiallyautomatically initiate communication to share the content correspondingto the active application of the first wireless communication devicebetween the first device and second device using a short-rangecommunication link. Each device includes a near field communication(NFC) device that (when in range of the other NFC device) may initiatecommunication between the wireless communication devices so that thedevices may share content. The users of NFC enabled devices may havelittle or minimal interactions except that one or more users may bringthe devices within range (e.g., “tap-to-configure”) so that the NFCs mayinitiate the pairing between the devices. Accordingly, the need forcomplicated and tedious processes to share content may be eliminated.

The instant disclosure is provided to explain in an enabling fashion thebest modes of making and using various embodiments in accordance withthe present invention. The disclosure is further offered to enhance anunderstanding and appreciation for the invention principles andadvantages thereof, rather than to limit in any manner the invention.The invention is defined solely by the appended claims including anyamendments of this application and all equivalents of those claims asissued.

It is further understood that the use of relational terms, if any, suchas first and second, top and bottom, rotating and stationary, and thelike are used solely to distinguish one from another entity or actionwithout necessarily requiring or implying any actual such relationshipor order between such entities or actions.

This disclosure is intended to explain how to fashion and use variousembodiments in accordance with the technology rather than to limit thetrue, intended, and fair scope and spirit thereof. The foregoingdescription is not intended to be exhaustive or to be limited to theprecise forms disclosed. Modifications or variations are possible inlight of the above teachings. The embodiment(s) was chosen and describedto provide the best illustration of the principle of the describedtechnology and its practical application, and to enable one of ordinaryskill in the art to utilize the technology in various embodiments andwith various modifications as are suited to the particular usecontemplated. All such modifications and variations are within the scopeof the invention as determined by the appended claims, as may be amendedduring the pendency of this application for patent, and all equivalentsthereof, when interpreted in accordance with the breadth to which theyare fairly, legally and equitable entitled.

1. A mobile communication device comprising: a short-range wirelesstransceiver configured to transmit data using a wireless transporthaving a wireless transport configuration indicated by configurationinformation and also having an available bandwidth; a processorconfigured to run at least one application software program foraccessing content indicated by application type information; acontroller coupled to the short-range wireless transceiver and theprocessor; and a near field communication device coupled to thecontroller and configured to transmit the configuration information, theavailable bandwidth, and the application type information and to receiveanother configuration information, another application type information,and another available bandwidth from another communication device. 2.The device of claim 1 wherein the near field communication device is aradio-frequency identification device.
 3. The device of claim 1 furthercomprising: a transceiver configured to communicate over a cellularnetwork.
 4. The device of claim 1 wherein the configuration informationincludes information selected from the group consisting of: a Bluetoothconfiguration type, a Bluetooth device address, a class of device, alink key, and a device short name.
 5. The device of claim 1 wherein theconfiguration information includes information selected from the groupconsisting of: a WLAN type, an SSID, a connection mode, an RF ChannelID, an encryption type, and an encryption key.
 6. The device of claim 1wherein the controller is configured to initiate communication via theshort-range wireless transceiver when the near field communicationdevice receives and processes the another configuration informationindicating the another communication device has a compatible short-rangewireless transceiver.
 7. The device of claim 1 wherein the applicationtype information comprises a maximum of one application indicator thatindicates a highest priority application software program that isrunning on the processor.
 8. The device of claim 7 wherein theapplication indicator is selected from the group consisting of: a callsharing application indicator, an image viewer application indicator, anaudio player application indicator, a document viewer applicationindicator, and a video player application indicator.
 9. The device ofclaim 1 wherein the application type information comprises a maximum ofone content type indicator selected from the group consisting: of avoice content indicator, an image content indicator, an audio contentindicator, a video content indicator, and a document content indicator.10. A method of content sharing between a first wireless communicationdevice and a second wireless communication device, the first wirelesscommunication device configured to execute a first application softwareprogram for accessing content having a content type, the methodcomprising: transmitting first short-range wireless transportconfiguration information, corresponding available bandwidth informationand active application information from the first wireless communicationdevice using a first near field communication; receiving secondshort-range wireless transport configuration information, correspondingavailable bandwidth information, and application availabilityinformation from the second wireless communication device using a secondnear field communication; establishing a short-range wirelesscommunication link between the first wireless communication device andthe second wireless communication device based on the first short-rangewireless transport configuration information and corresponding availablebandwidth information and the second short-range wireless transportconfiguration information and corresponding available bandwidthinformation.
 11. The method of claim 10, wherein the transmittingcomprises: transmitting connectivity capability selected from the groupconsisting of: Bluetooth capability and WiFi capability.
 12. The methodof claim 10, further comprising: transmitting content type informationusing the first near field communication.
 13. The method of claim 12,wherein the content type is selected from the group consisting of: avoice content type, an image content type, an audio content type, avideo content type, and a document content type.
 14. The method of claim10, further comprising: transmitting the content from the first wirelesscommunication device to the second wireless communication device usingthe short-range wireless communication link.
 15. The method of claim 14,further comprising: executing a voice call sharing application softwareprogram; and transmitting voice content from the first wirelesscommunication device to the second wireless communication device overthe short-range wireless communication link.
 16. The method of claim 10,further comprising: initiating execution of a second applicationsoftware program on the second wireless communication device capable ofaccessing the content; transmitting the content from the first wirelesscommunication device to the second wireless communication device usingthe short-range wireless communication link for access by the secondapplication software program.
 17. The method of claim 16 furthercomprising: implementing in the first wireless communication device astate machine comprising: an initial state NON in which the firstwireless communication device has no short-range wireless connectionwith the second wireless communication device; a point-to-pointconnection state P2P in which the first wireless communication devicehas one short-range wireless connection with the second wirelesscommunication device; implementing in the first wireless communicationdevice a peer-to-peer state machine (P2PSM) comprising: an initial stateSTART in which a successful short-range wireless link configured toshare content between the first wireless communication device and thesecond wireless communication device exists or is not needed; a finalstate END in which no successful short-range wireless link configured toshare content between the first wireless communication device and thesecond wireless communication device can be established; and a pluralityof states Sij in which a short-range wireless link of a transport type jconfigured to share content using content type i between the firstwireless communication device and the second wireless communicationdevice has been established; wherein the state machine tracksshort-range wireless transport configuration information, correspondingavailable bandwidth information, and content type information exchangedvia near field communication between the first wireless communicationdevice and the second wireless communication device.
 18. The method ofclaim 16 further comprising: implementing a point-to-multipoint (P2M)connection in which the first wireless communication device has apoint-to-point short-range wireless connection with the second wirelesscommunication device and at least one other point-to-point short-rangewireless connection with another wireless communication device.
 19. Amethod of content sharing between a first wireless communication deviceand a second wireless communication device, the first wirelesscommunication device and the second wireless communication deviceconfigured for near field communication via a near field communicationdevice, and the first wireless communication device and the secondwireless communication device configured for short-range communicationvia a plurality of short-range wireless communication transceivers, thefirst wireless communication device executing an application to outputcontent, the method comprising: initiating near field communicationbetween the first wireless communication device and the second wirelesscommunication device; transmitting, via near field communication of thefirst wireless communication device, configuration information of atleast one of the plurality of short-range wireless communicationtransceivers, available bandwidth, and application type information ofthe first wireless communication device to the second wirelesscommunication device; receiving, via near field communication of thesecond wireless communication device, configuration information of atleast one of the plurality of short-range wireless communicationtransceivers, available bandwidth, and application type information ofthe second wireless communication device to the first wirelesscommunication device; negotiating a short-range wireless link selectedfrom the plurality of short-range wireless communication transceivers ofthe first wireless communication device and the second wirelesscommunication device, negotiation of the short-range wireless linkbetween the first wireless communication device and the second wirelesscommunication device based on available bandwidth of the first wirelesscommunication device and the second wireless communication device andthe application type information of the first wireless communicationdevice and the second wireless communication device to determine anegotiated short-range wireless link; initiating the negotiatedshort-range wireless link for transmitting the output content from thefirst wireless communication device to the second wireless communicationdevice; and ending the near field communication between the firstwireless communication device and the second wireless communicationdevice.
 20. The method of claim 19, wherein the output content comprisesat least one of: a voice call, an image, music, a document, and a video;and the application respectively comprises at least one of: voice callsharing application, an image viewer, a music player, a word processor,and a video player.